package org.familysearch.fsapi.gwt.server.dao;

import java.util.List;

import org.familysearch.fsapi.gwt.common.client.entities.Person;

public interface PersonDAO extends GenericDAO<Person, String>{

	/*
	 * GenericDAO takes care of:
	 * - findById - where ID is a String, ie. a FamilySearchID.id
	 * - findAll() - no parameters
	 * - findByExample
	 */
	
	/*
	 * Let's add some more kinds of findAll
	 */
	public List<Person> findAll(boolean ascending) throws DAOException;
	public List<Person> findAll(int maxResults, boolean ascending) throws DAOException;
    public List<Person> findAll(String sortBy, boolean ascending) throws DAOException;
    public List<Person> findAll(int maxResults, String sortBy, boolean ascending) throws DAOException;
    
    /*
     * When the temple endpoint of the API becomes more robust, we can add more interfaces here, like maybe
     * - search
     * - getHours
     * - getDistrictBoundaries (for GIS applications)
     * - etc etc
     */
}
